Socket 类 (System.Net.Sockets) 您所在的位置:网站首页 socket api的概念 Socket 类 (System.Net.Sockets)

Socket 类 (System.Net.Sockets)

2023-04-06 00:32| 来源: 网络整理| 查看: 265

Socket 类 参考 定义 命名空间: System.Net.Sockets 程序集:System.dll, System.Net.Sockets.dll 程序集:System.Net.Sockets.dll 程序集:System.dll 程序集:netstandard.dll

重要

一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。

实现 Berkeley 套接字接口。

public ref class Socket : IDisposable public class Socket : IDisposable type Socket = class interface IDisposable Public Class Socket Implements IDisposable 继承 Object Socket 实现 IDisposable 示例

下面的代码示例演示如何 Socket 使用该类将数据发送到 HTTP 服务器并接收响应。 此示例会阻止直到收到整个页面。

#using using namespace System; using namespace System::Text; using namespace System::IO; using namespace System::Net; using namespace System::Net::Sockets; using namespace System::Collections; Socket^ ConnectSocket( String^ server, int port ) { Socket^ s = nullptr; IPHostEntry^ hostEntry = nullptr; // Get host related information. hostEntry = Dns::Resolve( server ); // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid // an exception that occurs when the host IP Address is not compatible with the address family // (typical in the IPv6 case). IEnumerator^ myEnum = hostEntry->AddressList->GetEnumerator(); while ( myEnum->MoveNext() ) { IPAddress^ address = safe_cast(myEnum->Current); IPEndPoint^ endPoint = gcnew IPEndPoint( address,port ); Socket^ tmpS = gcnew Socket( endPoint->AddressFamily,SocketType::Stream,ProtocolType::Tcp ); tmpS->Connect( endPoint ); if ( tmpS->Connected ) { s = tmpS; break; } else { continue; } } return s; } // This method requests the home page content for the specified server. String^ SocketSendReceive( String^ server, int port ) { String^ request = String::Concat( "GET / HTTP/1.1\r\nHost: ", server, "\r\nConnection: Close\r\n\r\n" ); array^bytesSent = Encoding::ASCII->GetBytes( request ); array^bytesReceived = gcnew array(256); String^ strRetPage = ""; // Create a socket connection with the specified server and port. Socket^ s = ConnectSocket( server, port ); if ( s == nullptr ) return ("Connection failed"); // Send request to the server. s->Send( bytesSent, bytesSent->Length, static_cast(0) ); // Receive the server home page content. int bytes = 0; strRetPage = String::Concat( "Default HTML page on ", server, ":\r\n" ); do { bytes = s->Receive( bytesReceived, bytesReceived->Length, static_cast(0) ); strRetPage = String::Concat( strRetPage, Encoding::ASCII->GetString( bytesReceived, 0, bytes ) ); } while ( bytes > 0 ); s->Dispose(); return strRetPage; } int main() { array^args = Environment::GetCommandLineArgs(); String^ host; int port = 80; if ( args->Length == 1 ) // If no server name is passed as argument to this program, // use the current host name as default. host = Dns::GetHostName(); else host = args[ 1 ]; String^ result = SocketSendReceive( host, port ); Console::WriteLine( result ); } using System; using System.Text; using System.IO; using System.Net; using System.Net.Sockets; public class GetSocket { private static Socket ConnectSocket(string server, int port) { Socket s = null; IPHostEntry hostEntry = null; // Get host related information. hostEntry = Dns.GetHostEntry(server); // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid // an exception that occurs when the host IP Address is not compatible with the address family // (typical in the IPv6 case). foreach(IPAddress address in hostEntry.AddressList) { IPEndPoint ipe = new IPEndPoint(address, port); Socket tempSocket = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp); tempSocket.Connect(ipe); if(tempSocket.Connected) { s = tempSocket; break; } else { continue; } } return s; } // This method requests the home page content for the specified server. private static string SocketSendReceive(string server, int port) { string request = "GET / HTTP/1.1\r\nHost: " + server + "\r\nConnection: Close\r\n\r\n"; Byte[] bytesSent = Encoding.ASCII.GetBytes(request); Byte[] bytesReceived = new Byte[256]; string page = ""; // Create a socket connection with the specified server and port. using(Socket s = ConnectSocket(server, port)) { if (s == null) return ("Connection failed"); // Send request to the server. s.Send(bytesSent, bytesSent.Length, 0); // Receive the server home page content. int bytes = 0; page = "Default HTML page on " + server + ":\r\n"; // The following will block until the page is transmitted. do { bytes = s.Receive(bytesReceived, bytesReceived.Length, 0); page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes); } while (bytes > 0); } return page; } public static void Main(string[] args) { string host; int port = 80; if (args.Length == 0) // If no server name is passed as argument to this program, // use the current host name as the default. host = Dns.GetHostName(); else host = args[0]; string result = SocketSendReceive(host, port); Console.WriteLine(result); } } Imports System.Text Imports System.IO Imports System.Net Imports System.Net.Sockets Public Class GetSocket Private Shared Function ConnectSocket(server As String, port As Integer) As Socket Dim s As Socket = Nothing Dim hostEntry As IPHostEntry = Nothing ' Get host related information. hostEntry = Dns.GetHostEntry(server) ' Loop through the AddressList to obtain the supported AddressFamily. This is to avoid ' an exception that occurs when the host host IP Address is not compatible with the address family ' (typical in the IPv6 case). Dim address As IPAddress For Each address In hostEntry.AddressList Dim endPoint As New IPEndPoint(address, port) Dim tempSocket As New Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp) tempSocket.Connect(endPoint) If tempSocket.Connected Then s = tempSocket Exit For End If Next address Return s End Function ' This method requests the home page content for the specified server. Private Shared Function SocketSendReceive(server As String, port As Integer) As String 'Set up variables and String to write to the server. Dim ascii As Encoding = Encoding.ASCII Dim request As String = "GET / HTTP/1.1" + ControlChars.Cr + ControlChars.Lf + "Host: " + server + ControlChars.Cr + ControlChars.Lf + "Connection: Close" + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf Dim bytesSent As [Byte]() = ascii.GetBytes(request) Dim bytesReceived(255) As [Byte] Dim page As String = "" ' Create a socket connection with the specified server and port. Dim s As Socket = ConnectSocket(server, port) If s Is Nothing Then Return "Connection failed" End If ' Send request to the server. s.Send(bytesSent, bytesSent.Length, 0) ' Receive the server home page content. Dim bytes As Int32 ' Read the first 256 bytes. page = "Default HTML page on " + server + ":" + ControlChars.Cr + ControlChars.Lf ' The following will block until the page is transmitted. Do bytes = s.Receive(bytesReceived, bytesReceived.Length, 0) page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes) Loop While bytes > 0 Return page End Function 'Entry point which delegates to C-style main Private Function Public Overloads Shared Sub Main() Main(System.Environment.GetCommandLineArgs()) End Sub Overloads Private Shared Sub Main(args() As String) Dim host As String Dim port As Integer = 80 If args.Length = 1 Then ' If no server name is passed as argument to this program, ' use the current host name as default. host = Dns.GetHostName() Else host = args(1) End If Dim result As String = SocketSendReceive(host, port) Console.WriteLine(result) End Sub End Class 注解

该 Socket 类为网络通信提供了一组丰富的方法和属性。 该 Socket 类允许你使用枚举中列出的 ProtocolType 任何通信协议执行同步和异步数据传输。

该Socket类遵循异步方法的.NET Framework命名模式。 例如,同步 Receive 方法对应于异步 BeginReceive 和 EndReceive 方法。

如果应用程序在执行过程中只需要一个线程,请使用以下方法,这些方法专为同步操作模式而设计。

如果使用面向连接的协议(如 TCP),则服务器可以使用该方法 Listen 侦听连接。 该方法 Accept 处理任何传入的连接请求并返回一个 Socket 可用于与远程主机通信的数据。 使用此返回 Socket 方法调用 Send 或 Receive 方法。 Bind如果要指定本地 IP 地址和端口号,请在调用该方法之前调用Listen该方法。 如果希望基础服务提供商为你分配免费端口,请使用端口号为零。 如果要连接到侦听主机,请调用 Connect 该方法。 若要传达数据,请调用 Send 或 Receive 方法。

如果使用无连接协议(如 UDP),则根本不需要侦听连接。 调用该方法 ReceiveFrom 以接受任何传入的数据报。 SendTo使用该方法将数据报发送到远程主机。

若要在执行过程中使用单独的线程处理通信,请使用以下方法,这些方法专为异步操作模式而设计。

如果使用面向连接的协议(如 TCP),请使用和SocketBeginConnectEndConnect方法连接到侦听主机。 BeginSend使用和EndSend和BeginReceiveEndReceive方法以异步方式通信数据。 可以使用和 EndAccept. 处理BeginAccept传入的连接请求。

如果使用无连接协议(如 UDP),则可以使用BeginSendTo和EndSendTo发送数据报以及BeginReceiveFromEndReceiveFrom接收数据报。

如果在套接字上执行多个异步操作,则它们不一定按照启动顺序完成。

完成发送和接收数据后,请使用Shutdown该方法禁用 。Socket 调用 Shutdown后,调用 Close 该方法以释放与该 Socket资源关联的所有资源。

该Socket类允许你使用SetSocketOption该方法进行配置Socket。 使用 GetSocketOption 该方法检索这些设置。

备注

如果要编写相对简单的应用程序,并且不需要最佳性能,请考虑使用TcpClient和TcpListenerUdpClient。 这些类为通信提供了更简单、更友好的界面 Socket 。

构造函数 Socket(AddressFamily, SocketType, ProtocolType)

使用指定的地址族、套接字类型和协议初始化 Socket 类的新实例。

Socket(SafeSocketHandle)

为指定的套接字句柄初始化 Socket 类的新实例。

Socket(SocketInformation)

使用 Socket 返回的指定的值初始化 DuplicateAndClose(Int32) 类的新实例。

Socket(SocketType, ProtocolType)

使用指定的地址族、套接字类型和协议初始化 Socket 类的新实例。 如果操作系统支持 IPv6,此构造函数将创建双模式套接字;否则,它将创建 IPv4 套接字。

属性 AddressFamily

获取 Socket 的地址族。

Available

获取已经从网络接收且可供读取的数据量。

Blocking

获取或设置一个值,该值指示 Socket 是否处于阻止模式。

Connected

获取一个值,该值指示 Socket 是在上次 Send 还是 Receive 操作时连接到远程主机。

DontFragment

获取或设置一个值,该值指定 Socket 是否允许将 Internet 协议 (IP) 数据报分段。

DualMode

获取或设置一个值,该值指定是用于 IPv4 和 IPv6 的 Socket 双模式套接字。

EnableBroadcast

获取或设置一个 Boolean 值,该值指定是否可以 Socket 发送广播数据包。

ExclusiveAddressUse

获取或设置 Boolean 值,该值指定 Socket 是否仅允许一个进程绑定到端口。

Handle

获取 Socket 的操作系统句柄。

IsBound

获取一个值,该值指示 Socket 是否绑定到特定本地端口。

LingerState

获取或设置一个值,该值指定 Socket 在尝试发送所有挂起数据时是否延迟关闭套接字。

LocalEndPoint

获取本地终结点。

MulticastLoopback

获取或设置一个值,该值指定传出的多路广播数据包是否传递到发送应用程序。

NoDelay

获取或设置 Boolean 值,该值指定流 Socket 是否正在使用 Nagle 算法。

OSSupportsIPv4

指示基础操作系统和网络适配器是否支持 Internet 协议第 4 版 (IPv4)。

OSSupportsIPv6

指示基础操作系统和网络适配器是否支持 Internet 协议第 6 版 (IPv6)。

OSSupportsUnixDomainSockets

指示基础操作系统是否支持 Unix 域套接字。

ProtocolType

获取 Socket 的协议类型。

ReceiveBufferSize

获取或设置一个值,它指定 Socket 接收缓冲区的大小。

ReceiveTimeout

获取或设置一个值,该值指定之后同步 Receive 调用将超时的时间长度。

RemoteEndPoint

获取远程终结点。

SafeHandle

获取一个 SafeSocketHandle,它表示当前 Socket 对象封装的套接字句柄。

SendBufferSize

获取或设置一个值,该值指定 Socket 发送缓冲区的大小。

SendTimeout

获取或设置一个值,该值指定之后同步 Send 调用将超时的时间长度。

SocketType

获取 Socket 的类型。

SupportsIPv4 已过时。 已过时。 已过时。 已过时。

获取一个值,该值指示在当前主机上 IPv4 支持是否可用并且已启用。

SupportsIPv6 已过时。 已过时。 已过时。 已过时。

获取一个值,该值指示 Framework 对某些已过时的 Dns 成员是否支持 IPv6。

Ttl

获取或设置一个值,指定 Socket 发送的 Internet 协议 (IP) 数据包的生存时间 (TTL) 值。

UseOnlyOverlappedIO 已过时。

获取或设置一个值,该值指定套接字是否只应使用重叠 I/O 模式。 在 .NET 5+ ((包括 .NET Core 版本) )上,该值始终 false是。

方法 Accept()

为新建连接创建新的 Socket。

AcceptAsync()

接受传入连接。

AcceptAsync(CancellationToken)

接受传入连接。

AcceptAsync(Socket)

接受传入连接。

AcceptAsync(Socket, CancellationToken)

接受传入连接。

AcceptAsync(SocketAsyncEventArgs)

开始一个异步操作来接受一个传入的连接尝试。

BeginAccept(AsyncCallback, Object)

开始一个异步操作来接受一个传入的连接尝试。

BeginAccept(Int32, AsyncCallback, Object)

开始异步操作以接受传入的连接尝试并接收客户端应用程序发送的第一个数据块。

BeginAccept(Socket, Int32, AsyncCallback, Object)

开始异步操作以接受从指定套接字传入的连接尝试并接收客户端应用程序发送的第一个数据块。

BeginConnect(EndPoint, AsyncCallback, Object)

开始一个对远程主机连接的异步请求。

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

开始一个对远程主机连接的异步请求。 主机由 IPAddress 和端口号指定。

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

开始一个对远程主机连接的异步请求。 主机由 IPAddress 数组和端口号指定。

BeginConnect(String, Int32, AsyncCallback, Object)

开始一个对远程主机连接的异步请求。 主机由主机名和端口号指定。

BeginDisconnect(Boolean, AsyncCallback, Object)

开始异步请求从远程终结点断开连接。

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

开始从连接的 Socket 中异步接收数据。

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

开始从连接的 Socket 中异步接收数据。

BeginReceive(IList, SocketFlags, AsyncCallback, Object)

开始从连接的 Socket 中异步接收数据。

BeginReceive(IList, SocketFlags, SocketError, AsyncCallback, Object)

开始从连接的 Socket 中异步接收数据。

BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

开始从指定网络设备中异步接收数据。

BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

开始使用指定的 SocketFlags 将指定字节数的数据异步接收到数据缓冲区的指定位置,然后存储终结点和数据包信息。

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

将数据异步发送到连接的 Socket。

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

将数据异步发送到连接的 Socket。

BeginSend(IList, SocketFlags, AsyncCallback, Object)

将数据异步发送到连接的 Socket。

BeginSend(IList, SocketFlags, SocketError, AsyncCallback, Object)

将数据异步发送到连接的 Socket。

BeginSendFile(String, AsyncCallback, Object)

使用 Socket 标志,将文件 fileName 发送到连接的 UseDefaultWorkerThread 对象。

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

将文件和数据缓冲区异步发送到连接的 Socket 对象。

BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

以异步方式将数据发送到特定远程主机。

Bind(EndPoint)

使 Socket 与一个本地终结点相关联。

CancelConnectAsync(SocketAsyncEventArgs)

取消一个对远程主机连接的异步请求。

Close()

关闭 Socket 连接并释放所有关联的资源。

Close(Int32)

关闭 Socket 连接并释放所有与指定超时关联的资源,以允许要发送的数据排队。

Connect(EndPoint)

与远程主机建立连接。

Connect(IPAddress, Int32)

与远程主机建立连接。 主机由 IP 地址和端口号指定。

Connect(IPAddress[], Int32)

与远程主机建立连接。 主机由 IP 地址数组和端口号指定。

Connect(String, Int32)

与远程主机建立连接。 主机由主机名和端口号指定。

ConnectAsync(EndPoint)

与远程主机建立连接。

ConnectAsync(EndPoint, CancellationToken)

与远程主机建立连接。

ConnectAsync(IPAddress, Int32)

与远程主机建立连接。

ConnectAsync(IPAddress, Int32, CancellationToken)

与远程主机建立连接。

ConnectAsync(IPAddress[], Int32)

与远程主机建立连接。

ConnectAsync(IPAddress[], Int32, CancellationToken)

与远程主机建立连接。

ConnectAsync(SocketAsyncEventArgs)

开始一个对远程主机连接的异步请求。

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

开始一个对远程主机连接的异步请求。

ConnectAsync(String, Int32)

与远程主机建立连接。

ConnectAsync(String, Int32, CancellationToken)

与远程主机建立连接。

Disconnect(Boolean)

关闭套接字连接并允许重用套接字。

DisconnectAsync(Boolean, CancellationToken)

断开与远程主机的连接套接字的连接。

DisconnectAsync(SocketAsyncEventArgs)

开始异步请求从远程终结点断开连接。

Dispose()

释放 Socket 类的当前实例所使用的所有资源。

Dispose(Boolean)

释放由 Socket 使用的非托管资源,并可根据需要释放托管资源。

DuplicateAndClose(Int32)

重复目标进程的套接字引用,并关闭此进程的套接字。

EndAccept(Byte[], IAsyncResult)

异步接受传入的连接尝试,并创建新的 Socket 对象来处理远程主机通信。 此方法返回包含所传输的初始数据的缓冲区。

EndAccept(Byte[], Int32, IAsyncResult)

异步接受传入的连接尝试,并创建新的 Socket 对象来处理远程主机通信。 此方法返回一个缓冲区,其中包含初始数据和传输的字节数。

EndAccept(IAsyncResult)

异步接受传入的连接尝试,并创建新的 Socket 来处理远程主机通信。

EndConnect(IAsyncResult)

结束挂起的异步连接请求。

EndDisconnect(IAsyncResult)

结束挂起的异步断开连接请求。

EndReceive(IAsyncResult)

结束挂起的异步读取。

EndReceive(IAsyncResult, SocketError)

结束挂起的异步读取。

EndReceiveFrom(IAsyncResult, EndPoint)

结束挂起的、从特定终结点进行异步读取。

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

结束挂起的、从特定终结点进行异步读取。 此方法还显示有关数据包而不是 EndReceiveFrom(IAsyncResult, EndPoint) 的更多信息。

EndSend(IAsyncResult)

结束挂起的异步发送。

EndSend(IAsyncResult, SocketError)

结束挂起的异步发送。

EndSendFile(IAsyncResult)

结束文件的挂起异步发送。

EndSendTo(IAsyncResult)

结束挂起的、向指定位置进行的异步发送。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object) Finalize()

释放 Socket 类使用的资源。

GetHashCode()

返回 Socket 实例的哈希值。

GetHashCode()

作为默认哈希函数。

(继承自 Object) GetRawSocketOption(Int32, Int32, Span)

使用特定于平台的级别和名称标识符获取套接字选项值。

GetSocketOption(SocketOptionLevel, SocketOptionName)

返回指定的 Socket 选项的值,表示为一个对象。

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

返回指定的 Socket 选项设置,表示为字节数组。

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

返回数组中指定的 Socket 选项的值。

GetType()

获取当前实例的 Type。

(继承自 Object) IOControl(Int32, Byte[], Byte[])

使用数字控制代码,为 Socket 设置低级操作模式。

IOControl(IOControlCode, Byte[], Byte[])

使用 Socket 枚举指定控制代码,为 IOControlCode 设置低级操作模式。

Listen()

将 Socket 置于侦听状态。

Listen(Int32)

将 Socket 置于侦听状态。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object) Poll(Int32, SelectMode)

确定 Socket 的状态。

Poll(TimeSpan, SelectMode) Receive(Byte[])

从绑定的 Socket 套接字接收数据,将数据存入接收缓冲区。

Receive(Byte[], Int32, Int32, SocketFlags)

使用指定的 Socket,从绑定的 SocketFlags 接收指定的字节数,存入接收缓冲区的指定偏移量位置。

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

使用指定的 Socket,从绑定的 SocketFlags 接收数据,将数据存入接收缓冲区。

Receive(Byte[], Int32, SocketFlags)

使用指定的 Socket,从绑定的 SocketFlags 接收指定字节数的数据,并将数据存入接收缓冲区。

Receive(Byte[], SocketFlags)

使用指定的 Socket,从绑定的 SocketFlags 接收数据,将数据存入接收缓冲区。

Receive(IList)

从绑定的 Socket 接收数据,将数据存入接收缓冲区列表中。

Receive(IList, SocketFlags)

使用指定的 Socket,从绑定的 SocketFlags 接收数据,将数据存入接收缓冲区列表中。

Receive(IList, SocketFlags, SocketError)

使用指定的 Socket,从绑定的 SocketFlags 接收数据,将数据存入接收缓冲区列表中。

Receive(Span)

从绑定的 Socket 套接字接收数据,将数据存入接收缓冲区。

Receive(Span, SocketFlags)

使用指定的 Socket,从绑定的 SocketFlags 接收数据,将数据存入接收缓冲区。

Receive(Span, SocketFlags, SocketError)

使用指定的 Socket,从绑定的 SocketFlags 接收数据,将数据存入接收缓冲区。

ReceiveAsync(ArraySegment)

接收连接的套接字发出的数据。

ReceiveAsync(ArraySegment, SocketFlags)

接收连接的套接字发出的数据。

ReceiveAsync(IList)

接收连接的套接字发出的数据。

ReceiveAsync(IList, SocketFlags)

接收连接的套接字发出的数据。

ReceiveAsync(Memory, CancellationToken)

接收连接的套接字发出的数据。

ReceiveAsync(Memory, SocketFlags, CancellationToken)

接收连接的套接字发出的数据。

ReceiveAsync(SocketAsyncEventArgs)

开始一个异步请求以便从连接的 Socket 对象中接收数据。

ReceiveFrom(Byte[], EndPoint)

将数据报接收到数据缓冲区并存储终结点。

ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

使用指定的 SocketFlags 将指定的数据字节数接收到数据缓冲区的指定位置,并存储终结点。

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

使用指定的 SocketFlags 将指定的字节数接收到数据缓冲区并存储终结点。

ReceiveFrom(Byte[], SocketFlags, EndPoint)

使用指定的 SocketFlags 将数据报接收到数据缓冲区并存储终结点。

ReceiveFrom(Span, EndPoint)

将数据报接收到数据缓冲区并存储终结点。

ReceiveFrom(Span, SocketFlags, EndPoint)

使用指定的 SocketFlags 将数据报接收到数据缓冲区并存储终结点。

ReceiveFromAsync(ArraySegment, EndPoint)

接收数据并返回发送主机的终结点。

ReceiveFromAsync(ArraySegment, SocketFlags, EndPoint)

接收数据并返回发送主机的终结点。

ReceiveFromAsync(Memory, EndPoint, CancellationToken)

接收数据并返回发送主机的终结点。

ReceiveFromAsync(Memory, SocketFlags, EndPoint, CancellationToken)

接收数据并返回发送主机的终结点。

ReceiveFromAsync(SocketAsyncEventArgs)

开始从指定网络设备中异步接收数据。

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

使用指定的 SocketFlags 将指定字节数的数据接收到指定的数据缓冲区位置,并存储终结点和数据包信息。

ReceiveMessageFrom(Span, SocketFlags, EndPoint, IPPacketInformation)

使用指定的 socketFlags 将指定字节数的数据接收到指定的数据缓冲区位置,并存储终结点和数据包信息。

ReceiveMessageFromAsync(ArraySegment, EndPoint)

接收数据并返回有关邮件发件人的其他信息。

ReceiveMessageFromAsync(ArraySegment, SocketFlags, EndPoint)

接收数据并返回有关邮件发件人的其他信息。

ReceiveMessageFromAsync(Memory, EndPoint, CancellationToken)

接收数据并返回有关邮件发件人的其他信息。

ReceiveMessageFromAsync(Memory, SocketFlags, EndPoint, CancellationToken)

接收数据并返回有关邮件发件人的其他信息。

ReceiveMessageFromAsync(SocketAsyncEventArgs)

开始使用指定的 SocketFlags 将指定字节数的数据异步接收到数据缓冲区的指定位置,并存储终结点和数据包信息。

Select(IList, IList, IList, Int32)

确定一个或多个套接字的状态。

Select(IList, IList, IList, TimeSpan) Send(Byte[])

将数据发送到连接的 Socket。

Send(Byte[], Int32, Int32, SocketFlags)

从指定偏移量开始,使用指定 SocketFlags,将指定的数据字节数发送到已连接的 Socket。

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

从指定偏移量开始,使用指定 SocketFlags,将指定的数据字节数发送到已连接的 Socket。

Send(Byte[], Int32, SocketFlags)

使用指定的 Socket,将指定字节数的数据发送到已连接的 SocketFlags。

Send(Byte[], SocketFlags)

使用指定的 Socket 将数据发送到连接的 SocketFlags。

Send(IList)

将列表中的一组缓冲区发送到连接的 Socket。

Send(IList, SocketFlags)

使用指定的 Socket,将列表中的一组缓冲区发送到连接的 SocketFlags。

Send(IList, SocketFlags, SocketError)

使用指定的 Socket,将列表中的一组缓冲区发送到连接的 SocketFlags。

Send(ReadOnlySpan)

将数据发送到连接的 Socket。

Send(ReadOnlySpan, SocketFlags)

使用指定的 Socket 将数据发送到连接的 SocketFlags。

Send(ReadOnlySpan, SocketFlags, SocketError)

使用指定的 Socket 将数据发送到连接的 SocketFlags。

SendAsync(ArraySegment)

在连接的套接字上发送数据。

SendAsync(ArraySegment, SocketFlags)

在连接的套接字上发送数据。

SendAsync(IList)

在连接的套接字上发送数据。

SendAsync(IList, SocketFlags)

在连接的套接字上发送数据。

SendAsync(ReadOnlyMemory, CancellationToken)

在连接的套接字上发送数据。

SendAsync(ReadOnlyMemory, SocketFlags, CancellationToken)

在连接的套接字上发送数据。

SendAsync(SocketAsyncEventArgs)

将数据异步发送到连接的 Socket 对象。

SendFile(String)

使用 Socket 传输标志,将文件 fileName 发送到连接的 UseDefaultWorkerThread 对象。

SendFile(String, Byte[], Byte[], TransmitFileOptions)

通过指定的 TransmitFileOptions 值,将文件 fileName 和数据缓冲区发送到连接的 Socket 对象。

SendFile(String, ReadOnlySpan, ReadOnlySpan, TransmitFileOptions)

通过指定的 TransmitFileOptions 值,将文件 fileName 和数据缓冲区发送到连接的 Socket 对象。

SendFileAsync(String, CancellationToken)

将文件 fileName 发送到连接的 Socket 对象。

SendFileAsync(String, ReadOnlyMemory, ReadOnlyMemory, TransmitFileOptions, CancellationToken)

通过指定的 TransmitFileOptions 值,将文件 fileName 和数据缓冲区发送到连接的 Socket 对象。

SendPacketsAsync(SocketAsyncEventArgs)

将文件集合或者内存中的数据缓冲区以异步方法发送给连接的 Socket 对象。

SendTo(Byte[], EndPoint)

将数据发送到指定的终结点。

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

使用指定的 SocketFlags,将指定字节数的数据发送到指定终结点(从缓冲区中的指定位置开始)。

SendTo(Byte[], Int32, SocketFlags, EndPoint)

使用指定的 SocketFlags,将指定字节数的数据发送到指定的终结点。

SendTo(Byte[], SocketFlags, EndPoint)

使用指定的 SocketFlags,将数据发送到特定的终结点。

SendTo(ReadOnlySpan, EndPoint)

将数据发送到指定的终结点。

SendTo(ReadOnlySpan, SocketFlags, EndPoint)

使用指定的 SocketFlags,将数据发送到特定的终结点。

SendToAsync(ArraySegment, EndPoint)

将数据发送到指定的远程主机。

SendToAsync(ArraySegment, SocketFlags, EndPoint)

将数据发送到指定的远程主机。

SendToAsync(ReadOnlyMemory, EndPoint, CancellationToken)

将数据发送到指定的远程主机。

SendToAsync(ReadOnlyMemory, SocketFlags, EndPoint, CancellationToken)

将数据发送到指定的远程主机。

SendToAsync(SocketAsyncEventArgs)

以异步方式将数据发送到特定远程主机。

SetIPProtectionLevel(IPProtectionLevel)

设置套接字上的 IP 保护级别。

SetRawSocketOption(Int32, Int32, ReadOnlySpan)

使用特定于平台的级别和名称标识符设置套接字选项值。

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

将指定的 Socket 选项设置为指定的 Boolean 值。

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

将指定的 Socket 选项设置为指定的值,表示为字节数组。

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

将指定的 Socket 选项设置为指定的整数值。

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

将指定的 Socket 选项设置为指定值,表示为对象。

Shutdown(SocketShutdown)

禁用某 Socket 上的发送和接收。

ToString()

返回表示当前对象的字符串。

(继承自 Object) 显式接口实现 IDisposable.Dispose()

此 API 支持产品基础结构,不能在代码中直接使用。

释放由 Socket 使用的所有资源。

扩展方法 AcceptAsync(Socket)

执行异步操作,接受套接字上的传入连接尝试。

AcceptAsync(Socket, Socket)

执行异步操作,接受套接字上的传入连接尝试。

ConnectAsync(Socket, EndPoint)

与远程主机建立连接。

ConnectAsync(Socket, EndPoint, CancellationToken)

与远程主机建立连接。

ConnectAsync(Socket, IPAddress, Int32)

与远程主机建立连接。 主机由 IP 地址和端口号指定。

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

建立与远程主机的连接,该连接由 IP 地址和端口号指定。

ConnectAsync(Socket, IPAddress[], Int32)

与远程主机建立连接。 主机由 IP 地址数组和端口号指定。

ConnectAsync(Socket, IPAddress[], Int32, CancellationToken)

建立与远程主机的连接,该连接由 IP 地址数组和端口号指定。

ConnectAsync(Socket, String, Int32)

与远程主机建立连接。 主机由主机名和端口号指定。

ConnectAsync(Socket, String, Int32, CancellationToken)

建立与远程主机的连接,该连接由主机名和端口号指定。

ReceiveAsync(Socket, ArraySegment, SocketFlags)

接收连接的套接字发出的数据。

ReceiveAsync(Socket, IList, SocketFlags)

接收连接的套接字发出的数据。

ReceiveAsync(Socket, Memory, SocketFlags, CancellationToken)

接收连接的套接字发出的数据。

ReceiveFromAsync(Socket, ArraySegment, SocketFlags, EndPoint)

接收来自指定网络设备的数据。

ReceiveMessageFromAsync(Socket, ArraySegment, SocketFlags, EndPoint)

使用指定的 SocketFlags 将指定字节数的数据接收到指定的数据缓冲区位置,并存储终结点和数据包信息。

SendAsync(Socket, ArraySegment, SocketFlags)

将数据发送到连接的套接字。

SendAsync(Socket, IList, SocketFlags)

将数据发送到连接的套接字。

SendAsync(Socket, ReadOnlyMemory, SocketFlags, CancellationToken)

将数据发送到连接的套接字。

SendToAsync(Socket, ArraySegment, SocketFlags, EndPoint)

以异步方式将数据发送到特定远程主机。

适用于 线程安全性

此类的实例是线程安全的。

另请参阅 System.Net System.Net.Cache System.Net.Security SocketAsyncEventArgs .NET Framework 中的网络编程 System.Net 类的最佳实践 网络应用程序的缓存管理 Internet 协议版本 6 网络编程示例 .NET Framework 中的网络跟踪 网络编程中的安全性 版本 3.5 中的套接字性能增强


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有